package com.pet.server.ext.util;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONNull;
import net.sf.json.JSONObject;



public class JsonParser {
	
	public static List<Map<String,String>> dealDetil(String str){
		List<Map<String,String>> list=null;
		if (!StringUtil.isEmpty(str)) {
			JSONObject jsonObject= JSONObject.fromObject(str);
			if (jsonObject.containsKey("tbk_uatm_favorites_item_get_response")) {
				jsonObject=jsonObject.getJSONObject("tbk_uatm_favorites_item_get_response");			
				//容错处理，外层的其实都没用
				if (jsonObject.containsKey("results")) {
					jsonObject=jsonObject.getJSONObject("results");
					//System.out.println("uatm_tbk_item------->"+jsonObject.get("uatm_tbk_item"));//这个里边是核心数据，外边的都不要，里边的转成对象
					JSONArray resultList=toJsonArr(jsonObject.get("uatm_tbk_item"));
					if (resultList!=null&&resultList.size()>0) {
						list=new ArrayList<Map<String,String>>();
						for (int i = 0; i < resultList.size(); i++) {
							list.add(toMap(resultList.getString(i)));
							//System.out.println(resultList.get(i));
						}
					}
					//System.out.println(resultList);
					//System.out.println(jsonObject);
				}
			}
			
		}
		return list;
	}
	

	public static List<Map<String,String>> deal(String str){
		List<Map<String,String>> list=null;
		if (!StringUtil.isEmpty(str)) {
			JSONObject jsonObject= JSONObject.fromObject(str);
			if (jsonObject.containsKey("tbk_uatm_favorites_get_response")) {
				jsonObject=jsonObject.getJSONObject("tbk_uatm_favorites_get_response");			
				//容错处理，外层的其实都没用
				if (jsonObject.containsKey("results")) {
					jsonObject=jsonObject.getJSONObject("results");
					//System.out.println("tbk_favorites------->"+jsonObject.get("tbk_favorites"));//这个里边是核心数据，外边的都不要，里边的转成对象
					JSONArray resultList=toJsonArr(jsonObject.get("tbk_favorites"));
					if (resultList!=null&&resultList.size()>0) {
						list=new ArrayList<Map<String,String>>();
						for (int i = 0; i < resultList.size(); i++) {
							list.add(toMap(resultList.getString(i)));
							//System.out.println(resultList.get(i));
						}
					}
					
				}
			}
			
		}
		return list;
	}
	
	
	//这个应该有现成的方法把{"favorites_title":"狗罐头","favorites_id":666134,"type":1}这个转成对象或者map
	public static HashMap<String, String> toMap(Object object) {
		HashMap<String, String> data = null;
		if (object != null&&!(object instanceof JSONNull)) {
			data = new HashMap<String, String>();
			// 将json字符串转换成jsonObject
			JSONObject jsonObject = JSONObject.fromObject(object);
			if (jsonObject!=null&&!jsonObject.isNullObject()) {
				Iterator it = jsonObject.keys();
				// 遍历jsonObject数据，添加到Map对象
				while (it.hasNext()) {
					String key = String.valueOf(it.next());
					Object value = jsonObject.get(key);
					if (value!=null&&!(value instanceof JSONNull)) {
						data.put(key, value.toString());
					}
				}
			}
		}
		return data;
	}
	
	
	
	public static JSONArray toJsonArr(Object object) {
		JSONArray jsonObject=null;
		if (object != null&&(object instanceof JSONArray)) {
			// 将json字符串转换成jsonObject
			 jsonObject = (JSONArray) object;
		}
		return jsonObject;
	}

}
